package mil.af.amc.adpetracker.service;

import mil.af.amc.adpetracker.model.ItemModel;

import java.util.List;
import java.util.Map;

/**
 * Interface for the ItemModelService implementation
 *
 * @author TSgt Jason Ferguson
 */

public interface ItemModelService extends Service<ItemModel> {

    /**
     * Create a new Model
     *
     * @param itemMap
     */
    void createModel(Map itemMap);

    /**
     * Edit an Existing Model
     *
     * @param itemMap
     */
    void editModel(Map itemMap);

    /**
     * Delete an Existing Model
     *
     * @param itemMap
     */
    void deleteModel(Map itemMap);

    /**
     * Get all Models by Manufacturer
     *
     * @param manu
     * @return
     */
    List<ItemModel> getByManufacturer(int manufacturerId);

    /**
     * Gets all ItemModel objects that have a given EquipmentType
     *
     * @param equipmentType
     * @return
     */
    List<ItemModel> getByEquipmentType(int equipmentTypeId);

    /**
     * Get all ItemModel objects for a given EquipmentType and Manufacturer
     * 
     * @param equipmentTypeId
     * @param manufacturerId
     * @return
     */
    List<ItemModel> getByEquipmentTypeAndManufacturer(int equipmentTypeId, int manufacturerId);
}
